#if !DLIF_ES3

namespace GameHelper.Saving
{
    using System;

    /// <summary>
    ///   存档空适配器, 防止未装插件时编译报错问题
    /// </summary>
    /// <summary>
    public partial class SaveAdapter
    {
        /// <summary>
        ///   存档构造
        /// </summary>
        /// <param name="path">存档路径</param>
        /// <param name="password">AES密码, 密码为32个字符</param>
        /// <param name="suppressTypeError">禁止类型错误时抛出异常</param>
        public SaveAdapter(string path, string password, bool suppressTypeError)
        {
        }

        /// <summary>
        ///   存档写入文件
        /// </summary>
        public void Flush()
        {
            throw new NotImplementedException();
        }

        #region 范型接口

        /// <summary>
        ///   存档写入
        /// </summary>
        public void Set<T>(string key, T value)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// 存档读取，如果键值不存在或者类型错误，返回fallback
        /// </summary>
        public T Get<T>(string key, T fallback)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// 存档安全读取，如果读取成功，返回true，value为读取到的结果
        /// </summary>
        /// <returns>读取失败返回false（键不存在，类型错误）</returns>
        public bool TryGet<T>(string key, out T value)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        ///   存档读取，键值不存在或者类型错误(suppressTypeError = false)时会抛出异常, 慎用!!!
        /// </summary>
        public T Get<T>(string key)
        {
            throw new NotImplementedException();
        }

        #endregion 范型接口

        /// <summary>
        ///   移除存档
        /// </summary>
        public void Remove(string key)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// 移除存档范型接口
        /// </summary>
        /// <param name="key"></param>
        /// <typeparam name="T">int/uint, long/ulong, short/ushort, string, Enum</typeparam>
        public void Remove<T>(T key)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        ///   检测存档是否存在
        ///   !! 注意: api只能判断键值是否存在，不能判断类型是否正确
        /// </summary>
        public bool HasKey(string key)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// 检测存档键值是否存在
        /// !! 注意: api只能判断键值是否存在，不能判断类型是否正确
        /// </summary>
        /// <param name="key"></param>
        /// <typeparam name="T">int/uint, long/ulong, short/ushort, string, Enum</typeparam>
        /// <returns></returns>
        public bool HasKey<T>(T key)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        ///   清空所有存档
        /// </summary>
        public void Clear()
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// 删除存档文件
        /// </summary>
        public void DeleteFile()
        {
            throw new NotImplementedException();
        }
    }
}

#endif
